﻿
namespace SistemaLogistica.Business.Logic
{
    using System;
    using System.Collections.Generic;
    using SistemaLogistica.Business.Entities;
    using SistemaLogistica.DataAccess;

    public class NotaSalidaManager
    {
        private NotaSalidaManager() { }

        private static readonly NotaSalidaManager instancia = new NotaSalidaManager();

        public static NotaSalidaManager Instancia
        {
            get { return instancia; }
        }

        public NotaSalida ObtenerPorID(int idNotaSalida)
        {
            try
            {
                return NotaSalidaData.Instancia.ObtenerPorID(idNotaSalida);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<NotaSalida> Listar()
        {
            try
            {
                return NotaSalidaData.Instancia.Listar();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<NotaSalida> Buscar(DateTime desde, DateTime hasta)
        {
            try
            {
                return NotaSalidaData.Instancia.Buscar(desde, hasta);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public int Registrar(NotaSalida notaSalida)
        {
            try
            {
                return NotaSalidaData.Instancia.Registrar(notaSalida);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void EditarNotaSalida(NotaSalida notaSalida)
        {
            try
            {
                NotaSalidaData.Instancia.Modificar(notaSalida);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void Eliminar(int idNotaSalida)
        {
            try
            {
                NotaSalidaData.Instancia.Eliminar(idNotaSalida);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<int> ListarPorGuia(List<int> arreglo)
        {
            try
            {
                return NotaSalidaData.Instancia.ListarPorGuia(arreglo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}
